import request from '@/config/axios'
import type { Dayjs } from 'dayjs'
import { data } from 'autoprefixer'

/** 课程信息 */
export interface Course {
  courseId: number // 课程ID
  name?: string // 课程名称
  groupId?: number // 课程组ID
  price?: number // 课程价格
  intro: string // 课程介绍
  duration: number // 授课时长
  singleLessonDuration: number // 每次授课时长
  courseCover: string // 课程封面
  courseSort: number // 课程排序
  beginDate: string | Dayjs // 开课时间
  endDate: string | Dayjs // 结课时间
  vipRequired: number // 是否需要VIP
  status: number // 上架状态
  enrollments: number // 报名人数
  courseMark: number // 课程标记
}

// 课程 API
export const CourseApi = {
  // 查询课程分页
  getCoursePage: async (params: any) => {
    return await request.get({ url: `/train/course/page`, params })
  },
  // 查询全部课程
  getCourseList: async (params: any) => {
    return await request.get({ url: `/train/course/list`, params })
  },
  // 查询课程详情
  getCourse: async (id: number) => {
    return await request.get({ url: `/train/course/get?id=` + id })
  },

  // 新增课程
  createCourse: async (data: Course) => {
    return await request.post({ url: `/train/course/create`, data })
  },

  // 修改课程
  updateCourse: async (data: Course) => {
    return await request.put({ url: `/train/course/update`, data })
  },

  // 删除课程
  deleteCourse: async (id: number) => {
    return await request.delete({ url: `/train/course/delete?id=` + id })
  },

  /** 批量删除课程 */
  deleteCourseList: async (ids: number[]) => {
    return await request.delete({ url: `/train/course/delete-list?ids=${ids.join(',')}` })
  },

  // 导出课程 Excel
  exportCourse: async (params) => {
    return await request.download({ url: `/train/course/export-excel`, params })
  },

  // 切换上架状态
  changeStatus: async (data: Course) => {
    return await request.put({ url: `/train/course/change-status`, data })
  }
}
